git merge和有什么区别git rebase?
git merge
git rebase
假设最初有 3 个提交,A, B, C:
A
B
C
然后开发人员 Dan 创建了 commit D,开发人员 Ed 创建了 commit E:
D
E
显然,这种冲突应该以某种方式解决。为此,有两种方法:
合并:
两者都提交D和E仍然在这里,但是我们创建了合并提交M,它继承了D和的更改E。然而,这会产生钻石形状,许多人对此感到非常困惑。
M
重新定位:
我们创建 commit R,其实际文件内容与M上面的合并提交相同。但是,我们摆脱了 commit E,就像它从未存在过一样(用点表示 - 消失线)。由于这种删除,E应该是开发人员 Ed 本地的,并且不应该被推送到任何其他存储库。rebase 的优点是避免了菱形,并且历史保持良好的直线 - 大多数开发人员都喜欢这一点!
R